import { VisualEditorPropsType } from '@/visitual-editor/props.util.lowcode'

// 对齐方式
const alignOptions = [
  {
    label: '左对齐',
    value: 'left'
  },
  {
    label: '右对齐',
    value: 'right'
  },
  {
    label: '居中对齐',
    value: 'center'
  }
]
// 对齐方式
const positionOptions = [
  {
    label: '左对齐',
    value: 'left'
  },
  {
    label: '右对齐',
    value: 'right'
  },
  {
    label: '上对齐',
    value: 'top'
  }
]

export const formProps = {
  inline: {
    type: VisualEditorPropsType.switch,
    label: '行内模式',
    defaultValue: false
  },
  labelAlign: {
    type: VisualEditorPropsType.select,
    label: '对齐方式',
    tips: '表单项label对齐方式',
    defaultValue: 'left',
    options: alignOptions
  },
  labelPosition: {
    type: VisualEditorPropsType.select,
    label: '标签位置',
    tips: '表单域标签的位置',
    defaultValue: 'right',
    options: positionOptions
  },
  labelWidth: {
    type: VisualEditorPropsType.inputNumber,
    label: '表单项宽度',
    tips: '表单项 label 宽度，默认单位为px',
    min: 10,
    max: 500,
    defaultValue: 100
  },
  labelSuffix: {
    type: VisualEditorPropsType.input,
    label: '标签后缀',
    tips: '表单域标签的后缀',
    defaultValue: ''
  },
  requireAsteriskPosition: {
    type: VisualEditorPropsType.select,
    label: '星号的位置',
    options: [
      {
        label: '左对齐',
        value: 'left'
      },
      {
        label: '右对齐',
        value: 'right'
      }
    ]
  },
  hideRequiredAsterisk: {
    type: VisualEditorPropsType.switch,
    label: '隐藏红色星号',
    tips: '是否隐藏必填字段标签旁边的红色星号',
    defaultValue: false
  },
  showMessage: {
    type: VisualEditorPropsType.switch,
    label: '显示错误',
    tips: '是否显示校验错误信息',
    defaultValue: true
  },
  inlineMessage: {
    type: VisualEditorPropsType.switch,
    label: '展示校验信息',
    tips: '是否以行内形式展示校验信息',
    defaultValue: true
  },
  statusIcon: {
    type: VisualEditorPropsType.switch,
    label: '反馈图标',
    tips: '是否在输入框中显示校验结果反馈图标',
    defaultValue: false
  },
  validateOnRuleChange: {
    type: VisualEditorPropsType.switch,
    label: '触发验证',
    tips: '是否在 rules 属性改变后立即触发一次验证',
    defaultValue: true
  },
  disabled: {
    type: VisualEditorPropsType.switch,
    label: '是否禁用',
    tips: '是否禁用表单中的所有输入框'
  },
  scrollToError: {
    type: VisualEditorPropsType.switch,
    label: '滚动到错误',
    tips: '当校验失败时，滚动到第一个错误表单项',
    defaultValue: false
  }
}
